﻿using System;
using System.Collections.Generic;
using MvcCms.Data;
namespace MvcCms.Store.Service
{
    public interface IStoreService
    {
        User GetUserIncCC();

        StoreShippingMethodRate GetShippingMethodRate(int shippingRateId);
        IEnumerable<StoreShippingMethodRate> ListShippingMethodRates(int portalId);
        IEnumerable<StoreOrder> ListOrders(int portalId, DateTime dateToGetOrdersFor);
        IEnumerable<StoreOrder> ListOrders(Guid userId);
        bool EditPriceOption(StorePricingOption priceOptionToEdit);
        StorePricingOption GetPriceOption(int priceOptionId);
        bool CreatePriceOption(StorePricingOption priceOptionToCreate);
        IEnumerable<StorePricingOption> ListPriceOptions(int portalId);
        StoreOrder GetOrder(Guid userId);
        bool DeleteCartItem(StoreCart cartToEdit);
        StoreOrder GetOrder(int orderId, Guid userId);
        StoreCart GetCart(int recordId);
        bool CreateCart(StoreCart cartToCreate);
        StoreCategory GetCategory(string category, int portalId);
        IEnumerable<StoreProduct> ListActiveProductsWithCategory(int portalId);
        IEnumerable<StoreCategory> ListCategories(int portalId);
        bool CreateProduct(StoreProduct productToCreate);
        IEnumerable<StoreCart> GetCart(string shoppingCartID);
        StoreProduct GetProduct(int productId);
        IEnumerable<StoreProduct> ListActiveProducts(int portalId);
        bool EditProduct(StoreProduct productToEdit);
        bool EditCartItem(StoreCart cartToEdit);
        IEnumerable<StoreCart> GetCartWithProduct(string shoppingCartID);
        bool CreateOrder(StoreOrder orderToCreate);
        IEnumerable<StoreProduct> ListTopSellingActiveProducts(int portalId, int count);
    }
}
